package com.example.demo.configurer;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class AppConfig implements WebMvcConfigurer { // 要想加入系统配置，必须实现 WebMvcConfigurer
    // 可以通过注入的方式，将自定义拦截器注入到配置中
    @Autowired
    private LoginInterceptor loginInterceptor;

    @Override
    // 重写 addInterceptors，将自定义拦截器注册进来
    public void addInterceptors(InterceptorRegistry registry) {
        // registry.addInterceptor( new LoginInterceptor).  也可以直接 new 一个对象
        registry.addInterceptor(loginInterceptor).
                addPathPatterns("/**"). // 拦截所有的 url 接口
                excludePathPatterns("/user/login"). // 设置不用拦截的接口
                excludePathPatterns("/user/reg").
                excludePathPatterns("/login.html").
                excludePathPatterns("/reg.html").
                excludePathPatterns("/**/*.js").
                excludePathPatterns("/**/*.css").
                excludePathPatterns("/**/*.png").
                excludePathPatterns("/**/*.jpg");
    }

//    @Override
//    public void configurePathMatch(PathMatchConfigurer configurer) {
//        // 给所有的地址添加 api 前缀
//        configurer.addPathPrefix("api", c -> true);// c 表示所有的 controller
//    }
}